$(document).ready(function(){
        // 监听加密矩阵输入框的失焦事件
        $('#matrix').blur(function() {
            validateMatrix();
        });
        $('#string').blur(function() {
            checkInputString();
        });
        $('#row').blur(function() {
            validateRow();
        });
        $('#clear').click(function() {
            // 清空表单中的所有输入框
            $('#string').val('');
            $('#result').val('');
            $('#matrix').val('');
            $('#row').val('');
            $('#add').val('')
        })
        // 函数用于检查输入是否为字符串
        function checkInputString() {
            var inputString = $('#string').val().trim(); // 获取输入的字符串
            // 判断输入是否为字符串
            var englishPattern = /^[a-zA-Z0-9]+$/;
            if (!englishPattern.test(inputString)) {
                alert('请输入字母与数字的组合字符串！');
            }
        }

        function validateRow() {
            var row =$('#row').val().trim();
            var numPattern = /^[2-9]+$/;
            if(!numPattern.test(row)){
                alert('请输入正确的行数')
                $('#row').val('')
            }
        }
        // 函数用于检查加密矩阵的长度是否超过矩阵行数的平方，并且不包含空格
        function validateMatrix() {
            var row = parseInt($('#row').val().trim()); // 获取矩阵行数
            var matrix = $('#matrix').val().trim(); // 获取加密矩阵
            var matrixArray = matrix.split(' ');
            var matrixLength = matrixArray.length;
            // 计算矩阵行数的平方
            var rowSquared = row * row;
            // 检查加密矩阵长度是否大于矩阵行数的平方
            if (matrixLength !== rowSquared) {
                alert('矩阵长度错误');
                $('#matrix').val('')
            }
        }

        $('#jiami').click(function(){
            $.ajax({
                url: '/encrypt/',
                type: 'post',
                data: {
                    string : $('#string').val().trim(),
                    row :$('#row').val().trim(),
                    matrix: $('#matrix').val().trim(),
                    csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val()
                },
                success: function(res){
                    console.log(res);
                    if (res.res === 2) {
                        alert(res.message)
                    } else {
                        document.getElementById('result').value = res.params['ciphertext'];
                        document.getElementById('add').value = res.params['supple_num'];
                    }
                },
                error: function(){
                    alert('请求失败');
                }
            });
        });

        $('#jiemi').click(function (){
           $.ajax({
                url: '/decrypt/',
                type: 'post',
                data: {
                    string : $('#string').val().trim(),
                    row :$('#row').val().trim(),
                    matrix: $('#matrix').val().trim(),
                    csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val()
                },
                success: function(res) {
                    // 请求成功
                    console.log(res);
                     if (res.res === 2) {
                         alert(res.message)
                         $('#result').val('');
                         $('#matrix').val('');
                         $('#add').val('');
                    }else{

                         document.getElementById('result').value = res.plaintext;
                     }

                },
                error: function(){
                    alert('请求失败');
                }
           })

        })
});